namespace iScadaFBD
{
    using System;

    public class GlobalParam
    {
        public const int FBWidth = 100;
        public const int MaxFBWidth = 180;
        public const int MinFBWidth = 50;
        public const int nodeDistance = 8;
        public const int nodeHeight = 8;
        public const int nodeWidth = 8;
        public const int offBorder = 15;
        public const int OffsetNodeToLine = 5;
        public const int OffsetToLeftRightBorder = 5;
        public const int OffsetToTopBottomBorder = 15;
        public static int order = 0;
        public const int PointOffsetToNode = 50;
        public const float PointToLine = 10f;
        public const int textOffsetToNode = 1;

        public enum FBType
        {
            ACT,
            AND,
            NOT,
            CND,
            CMP,
            OR,
            DC,
            RS,
            SR,
            TP,
            BFI,
            BFO,
            PEG,
            NEG,
            TON,
            TOF,
            AI,
            AO,
            DI,
            DO,
            MAI,
            MAO,
            MDI,
            MDO,
            DI_IN,
            DO_OUT,
            AI_IN,
            AO_OUT,
            PI,
            CALC,
            PID,
            XFR,
            ADD,
            SUB,
            MUL,
            DIV,
            ABS,
            SQR,
            SIN,
            COS,
            TAN,
            COT,
            POW,
            LOG,
            COUNTER,
            TIMER,
            COMPOSITE,
            GPC,
            MPC,
            FUZZY,
            NNET,
            SHAPE_RECTANGLE,
            SHAPE_LINE,
            POINTER
        }

        public enum IO_Type
        {
            INPUT,
            OUTPUT
        }

        public enum ObjectType
        {
            FunctionBlock,
            Connection,
            ShapeRectangle,
            ShapeEllipse,
            ShapeLine,
            ShapeText
        }

        public enum RunMode
        {
            EDIT,
            ONLINE,
            DEBUG
        }

        public enum ValueType
        {
            DIGITAL,
            DIGITAL_WITH_STATUS,
            INT,
            INT_WITH_STATUS,
            DOUBLE,
            DOUBLE_WITH_STATUS,
            STRING
        }
    }
}

